package com.smart.community.region.entity;

import java.time.LocalDate;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.smart.community.commons.base.BaseEntity;

import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 业主实体类
 * 
 * @author Wu.Liang
 * @since 2025-08-20
 * @version 1.0.0
 */
@Data
@TableName("sc_owner")
@EqualsAndHashCode(callSuper = true)
public class Owner extends BaseEntity {
    /**
	 * @author Wu.Liang
	 * @date 2025年8月20日
	 */
	private static final long serialVersionUID = -7884719692767884205L;

	/**
     * 业主姓名
     */
    @TableField("owner_name")
    private String ownerName;
    
    /**
     * 身份证号
     */
    @TableField("id_card")
    private String idCard;
    
    /**
     * 关联用户ID
     */
    @TableField("user_id")
    private Long userId;
    
    /**
     * 联系电话
     */
    @TableField("phone")
    private String phone;
    
    /**
     * 邮箱地址
     */
    @TableField("email")
    private String email;
    
    /**
     * 性别：0-未知，1-男，2-女
     */
    @TableField("gender")
    private Integer gender;
    
    /**
     * 出生日期
     */
    @TableField("birth_date")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate birthDate;
    
    /**
     * 联系地址
     */
    @TableField("address")
    private String address;
    
    /**
     * 职业
     */
    @TableField("occupation")
    private String occupation;
    
    /**
     * 工作单位
     */
    @TableField("company")
    private String company;
    
    /**
     * 紧急联系人
     */
    @TableField("emergency_contact")
    private String emergencyContact;
    
    /**
     * 紧急联系电话
     */
    @TableField("emergency_phone")
    private String emergencyPhone;
    
    /**
     * 备注信息
     */
    @TableField("remark")
    private String remark;
    
    /**
     * 状态：0-禁用，1-启用
     */
    @TableField("status")
    private Integer status;
    
    /**
     * 业主状态：0-未激活，1-已激活，2-已禁用
     */
    @TableField("owner_status")
    private Integer ownerStatus;
}
